package com.financing.wap.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;

/** 
 * 数字型运算 
 *  
 * @author chenxin 
 * @version [版本号, 2012-5-21] 
 * @see [相关类/方法] 
 * @since [产品/模块版本] 
 */  
public class NumeralUtil {  
  
    /** 
     * 整数相除,计算百分比,结果保留整数位 
     *  
     * @param a 
     * @param b 
     * @return 
     */  
    public static String getPercentNoPercent(int a, int b) {  
        if (b == 0) {  
            return "0";  
        } else {  
            Double c = new Double(a);  
            Double d = new Double(b);  
            double e = c.doubleValue() / d.doubleValue();  
            DecimalFormat df2 = new DecimalFormat("##%");  
            String result = df2.format(new Double(e));  
            return result.replaceAll("\\%", "");  
        }  
    }  
  
      
    /** 
     * double 相除,计算百分比,结果保留整数位 
     *  
     * @param a 
     * @param b 
     * @return 
     */  
    public static String getDoublePercent(double a, double b) {
        if (b == 0) {  
            return "0";  
        } else {  
            Double c = new Double(a);  
            Double d = new Double(b);  
            double e = c.doubleValue() / d.doubleValue();  
            DecimalFormat df2 = new DecimalFormat("##%");  
            String result = df2.format(new Double(e));  
            return result.replaceAll("\\%", "");  
        }  
    }  
  
    /** 
     * 保留小数点后4位数字 
     *  
     * @param a 
     * @return 
     */  
    public static String get4numeral(double a) {  
        DecimalFormat df = new DecimalFormat("0.0000");  
  
        return df.format(a);  
  
    }  
  
    /** 
     * 将结果以万为单位保留2位小数.四舍五入 b 单位指,例如 一万为单位 b=10000 
     *  
     * @param a 
     * @param b 
     * @return 
     */  
    public static String getFormatterNumeral(double a, double b) {  
        DecimalFormat df2 = new DecimalFormat("0.00");  
        return df2.format(a / b);  
    }  
  
      
    /** 
     * 两个BigDecimal 相除 
     *  
     * @param a 
     * @param b 
     * @param pot 保留位数 
     * @return 
     */  
    public static double getBigDecimalDivide(BigDecimal a, BigDecimal b, int pot) {
        return a.divide(b, pot, BigDecimal.ROUND_HALF_UP).doubleValue();  
    }  
    
    /** 
     * 两个BigDecimal 相加
     *  
     * @param a 
     * @param b 
     * @param pot 保留位数 
     * @return 
     */  
    public static BigDecimal add(BigDecimal a, BigDecimal b) {
        return a.add(b);  
    }  
      
      
    /** 
     * 两个int 相除 
     *  
     * @param a 
     * @param b 
     * @param pot 
     * @return 
     */  
    public static double getIntDivide(int a, int b, int pot) {  
        if (b == 0) {  
            return 0;  
        } else {  
            BigDecimal num1 = new BigDecimal(a);  
            BigDecimal num2 = new BigDecimal(b);  
  
            return num1.divide(num2, pot, BigDecimal.ROUND_HALF_UP).doubleValue();  
        }  
  
    }  
      
  
    /** 
     * 提供小数位四舍五入处理 
     *  
     * @param v 需要四舍五入的数字 
     * @param scale 小数点后保留几位 
     * @return 四舍五入后的结果 
     */  
    public Double round(double v, int scale) {  
        String temp = "#,##0.";  
        for (int i = 0; i < scale; i++) {  
            temp += "0";  
        }  
        new java.text.DecimalFormat(temp).format(v);  
  
        return new Double(new java.text.DecimalFormat(temp).format(v));  
    }  
  
    public static void main(String[] args) {  
    	BigDecimal b = new BigDecimal("4.44");
    	
    	System.out.println(b.toPlainString());
    	System.out.println(b.toString());
    	System.out.println("s");
        System.out.println(getPercentNoPercent(3029,12974));  
    }  
  
  
}  
